package com.yanfan.lighting.domain;

import java.util.Date;

import lombok.Data;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yanfan.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 照明系统设备对象 ibms_lighting_device
 *
 * @author genluo
 * @date 2024-08-27
 */

@Data
public class IbmsLightingDevice implements Serializable{

private static final long serialVersionUID=1L;

    /**
     * id
     */
    @Excel(name = "id")
    @TableId(value = "id" , type = IdType.AUTO) // 整型类型使用自增
    private Long id;

    /**
     * 名称
     */
    @Excel(name = "名称")
    @NotBlank(message = "名称不能为空")
    private String deviceName;

    /**
     * 位置
     */
    @Excel(name = "位置")
    private String location;

    /**
     * 区域
     */
    @Excel(name = "区域")
    private String area;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private String status;

    /**
     * 亮度级别
     */
    @Excel(name = "亮度级别")
    private Long brightnessLevel;

    /**
     * 组名
     */
    @Excel(name = "组名")
    private String groupName;

    /**
     * 最后操作时间
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后操作时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "最后操作时间不能为空")
    private Date lastControlTime;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "创建时间不能为空")
    private Date createdAt;

    /**
     * 更新时间
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "更新时间不能为空")
    private Date updatedAt;


}
